from langchain_core.prompts import ChatPromptTemplate  #  提示词模板
from langchain_core.output_parsers import StrOutputParser  # 将返回格式胡

class Base_prompt:
    def get_base_prompt(self):
        

        # 增强的提示词 - 结合AI知识和文档内容
        prompt = ChatPromptTemplate.from_messages([
            ("system", """你是一个智能助手，具有丰富的知识。请根据以下原则回答问题：

1. **优先使用自己的知识**：首先基于你的知识来回答用户问题
2. **文档作为增强**：如果提供了相关文档，将其作为补充信息来增强你的回答
3. **智能融合**：将文档内容与你的知识有机结合，提供更全面、准确的回答
4. **处理冲突**：如果文档内容与你的知识有差异，可以说明这种差异，并给出合理的解释
5. **保持自然**：回答要自然流畅，不要生硬地堆砌文档内容

记住：文档只是增强，不是限制。
即使文档中没有相关内容，你也要能够回答用户的问题，而且不要提及文档，用户是不知道有文档的。

请用中文回答，并确保回答清晰易懂。"""),
            ("user", """相关文档内容：{context}

用户问题：{input}

请结合你的知识和上述文档内容来回答用户的问题。如果文档内容为空或无关，请直接使用你的知识回答。""")
        ])

        return prompt

        # # 创建输出解析器
        # output_parser = StrOutputParser()

        # # 创建链
        # chain = prompt | llm | output_parser

        # # 执行链
        # res = chain.invoke({"input": "您好，请问您是"})